Proving Correctness of Refinement and Implementation
نویسندگان
چکیده
The notions of state and observable behaviour are fundamental to many areas of computer scjpnce. Hidden sorted algebra, an extension of many sorted al~bra. captures these notions through hidden sorts and the behavioural satisfaction of equations. This makes it a powerful formalisation of abstract machines, and many results suggest that it is also suitable for the semanticl:i of the object paradigm. Another extension of many sorted algebra, namely order sorted algebra, hM proved useful in system specification and prototyping because of the way it handles subtypes and errors. The combination of these two algebraic approaches, hidden order sorted algebra, has also heen proposed as a foundation for object paradigm. and has mnch promise as a foundation for Software Engineering. This paper extends recent work on hidden order sorted algebra by investigat.ing: tbe re finement and implementation of bidden order sort.ed specificatious. We present definitions of rpfint'ment and implementatiou for such sppcifications, and tl'{:hniques for proving tbat one specification refines or implements another. It is important that the notions of relinement and implementation be tractable, in the sense that there are efficient techniques for proving their correctnpss. The proof techniques given in this paper lead, we believe, to correctness proofs that are much simpler than others in the literature. \Ve found that proving refinement is an effective way to prove implementation correctness. Some examples are given. AllY foundation for the spmantks of programming should also support modular specifi cations. The 'institutions' developed hy Goguen and Bllrstall are useful for this purpose. Institutions formalise the notion of logical system, and provide an encapsulation property for specifications: when oue specification is imported into another, properties that hold of that specification in isolation remain true in its uew context. An important technical r€Sult of this paper is that hidden order sorted algebra forms au institution, and therefore supports the modular specification of systems of objects. The paper also includes an exposition of hidden order sorted algebra, and brief introductions to many sorted algebra, order sorted algebra, and institutions.
منابع مشابه
Proving Skipping Refinement with ACL2s
We describe three case studies illustrating the use of ACL2s to prove the correctness of optimized reactive systems using skipping refinement. Reasoning about reactive systems using refinement involves defining an abstract, high-level specification system and a concrete, low-level implementation system. Next, one shows that the behaviors of the implementation system are allowed by the specifica...
متن کاملAbstract Implementations and Correctness Proofs
IMPLEMENTATIONS AND CORRECTNESS PROOFS Gilles BERNOT, Michel BIDOIT, Christine CHOPPY Laboratoire de Recherche en Informatique Bât 490, Université PARIS-SUD F-91405 ORSAY CEDEX FRANCE ABSTRACT In this paper, we present a new semantics for the implementation of abstract data types. This semantics leads to a simple, exhaustive description of the abstract implementation correctness criteria. These...
متن کاملProving Behavioral Refinements of COL-specifications
The COL institution (constructor-based observational logic) has been introduced as a formal framework to specify both generationand observation-oriented properties of software systems. In this paper we consider behavioral refinement relations between COL-specifications taking into account implementation constructions. We propose a general strategy for proving the correctness of such refinements...
متن کاملCorrectness Proofs for Abstract Implementations
New syntax and semantics for implementation of abstract data types are presented in this paper. This formalism leads to a simple, exhaustive description of the abstract implementation correctness criteria. These correctness criteria are expressed in terms of sufficient completeness and hierarchical consistency. Thus, correctness proofs of abstract implementations can be handled using classical ...
متن کاملSkipping Refinement
We introduce skipping refinement, a new notion of correctness for reasoning about optimized reactive systems. Reasoning about reactive systems using refinement involves defining an abstract, highlevel specification system and a concrete, low-level implementation system. One then shows that every behavior allowed by the implementation is also allowed by the specification. Due to the difference i...
متن کاملProving Linearizability of Multiset with Local Proof Obligations
Linearizability is a key correctness criterion for concurrent software. In our previous work, we introduced local proof obligations, which, by showing a refinement between an abstract specification and its implementation, imply linearizability of the implementation. The refinement is shown via a thread local backward simulation, which reduces the complexity of a backward simulation to an execut...
متن کامل